﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using LoginModule;
namespace HDVN5.DaoLienDoan.QuanTri
{
    public partial class CacDonViTrucThuoc : System.Web.UI.Page
    {

        private string capTrucThuocBDH = "";
        private DanhMucDataContext db = new DanhMucDataContext();

        private LoginModule.DangKy dbNew = new LoginModule.DangKy();

        private LoginModule.AccountModuleDataContext db1 = new AccountModuleDataContext();

        private LoginModule.DonVi.DonViBasic donViBind = null;
        private int tinhThanhPho;
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                // Set cac du lieu mac dinh

                capTrucThuocBDH = Session["MADONVIID"].ToString();
                SOQUANLYDONVI quanLyDonVi = db.SOQUANLYDONVIs.SingleOrDefault(p => p.MASO.ToString() == capTrucThuocBDH);
                capDonVi.Value = quanLyDonVi.CAPID.ToString();
                maDonViDangNhap.Value = quanLyDonVi.MASO.ToString();
                tinhThanhPho = Convert.ToInt16(capTrucThuocBDH.Substring(0,2));
                TinhThanh.Value = tinhThanhPho.ToString();
                bindDonVi(Convert.ToInt32(capTrucThuocBDH));
                Session.Add("CAPDONVI", capDonVi.Value);

            }
        }
        /// <summary>
        /// Bing data don vi truc thuoc
        /// </summary>
        /// <param name="donvi"></param>
        private void bindDonVi(Int32 donvi)
        {
            donViBind = new LoginModule.DonVi.DonViBasic(donvi);
            DonViTrucThuoc.DataSource = donViBind.danhSachDonViTrucThuoc();
            DonViTrucThuoc.DataBind();
        }
        /// <summary>
        /// Them lien doan neu cap don vi la 4
        /// </summary>
        private void themMotLienDoan()
        {
            LoginModule.SOQUANLYDONVI themMoiLienDoan = new LoginModule.SOQUANLYDONVI();

            long id = LoginModule.CongCu.CapMaSo.capMaSoDangKyDonVi(Convert.ToInt16(TinhThanh.Value), 4);

            themMoiLienDoan.MASO = Convert.ToInt32(id);
            themMoiLienDoan.TENDONVIDANGKY = Request.Form["TenDonVi"];
            themMoiLienDoan.TINHTHANH = Convert.ToInt16(TinhThanh.Value);
            themMoiLienDoan.NGAYDANGKY = DateTime.Now.Date;
            themMoiLienDoan.NGAYTAO = DateTime.Now.Date;
            themMoiLienDoan.CAPID = 4;
            themMoiLienDoan.EMAIL = Request.Form["Email"];
            themMoiLienDoan.TENTRUONG = Request.Form["tentruong"];
            themMoiLienDoan.MACAPTRUCTHUOC = Convert.ToInt32(Session["MADONVIID"].ToString());
            themMoiLienDoan.HOATDONG = true;
            themMoiLienDoan.DANGKYTAIKHOAN = true;
            int themMOi1 = dbNew.dangKyThanhLapDonVi(themMoiLienDoan);
            string s = "";
            if (themMOi1 == 1)
            {
                s = "alert('Thêm mới liên đoàn thành công !')";

            }
            else
            {
                s = "alert('Thêm mới liên đoàn không thành công thành công !')";
            }
            thucHienScript(s, "thongbaothemmoi");
            dangKyTaiKhoan(Convert.ToInt32(id), 4, Request.Form["Email"]);
        }

        /// <summary>
        /// Them don vi nganh
        /// </summary>
        /// 
        private bool themDonViNganh()
        {
            bool themMoi = true;
            try
            {
                LoginModule.SOQUANLYDONVI themDonViNganh = new LoginModule.SOQUANLYDONVI();
                LoginModule.DANHMUCDONVINGANH danhMucDonViNganh = new LoginModule.DANHMUCDONVINGANH();

                int MaNganh = Convert.ToInt16(NganhChon.Value);
                Int32 maLienDoan = Convert.ToInt32(LienDoanChon.Value);
                Int16 cap = 0;
                if (capDonVi.Value != "1")
                {
                    cap = 6;
                }
                else
                {
                    cap = 5;
                }

                long id = LoginModule.CongCu.CapMaSo.capMaSoDonViNganh(Convert.ToInt16(TinhThanh.Value), MaNganh, cap);

                themDonViNganh.MASO = Convert.ToInt32(id);
                themDonViNganh.TENDONVIDANGKY = Request.Form["TenDonVi"];
                themDonViNganh.TINHTHANH = Convert.ToInt16(TinhThanh.Value);
                themDonViNganh.NGAYDANGKY = DateTime.Now.Date;
                themDonViNganh.NGAYTAO = DateTime.Now.Date;
                themDonViNganh.CAPID = cap;
                themDonViNganh.EMAIL = Request.Form["Email"];
                themDonViNganh.TENTRUONG = Request.Form["tentruong"];
                themDonViNganh.NGANHID = MaNganh;
                themDonViNganh.MACAPTRUCTHUOC = maLienDoan;
                themDonViNganh.HOATDONG = true;
                themDonViNganh.CONGNHANTHANHLAP = false;
                themDonViNganh.DANGKYTAIKHOAN = true;
                // Them vao danh muc don vi nganh

                danhMucDonViNganh.MASO = Convert.ToInt32(id);
                danhMucDonViNganh.TENDONVINGANH = Request.Form["TenDonVi"];
                danhMucDonViNganh.NGANHID = MaNganh;
                danhMucDonViNganh.HOATDONG = true;
                if (capDonVi.Value != "1")
                {
                    danhMucDonViNganh.CAPTRUCTHUOC1 = maLienDoan;
                }
                else
                {
                    danhMucDonViNganh.CAPTRUCTHUOC1 = Convert.ToInt32(Session["MADONVIID"].ToString());
                    danhMucDonViNganh.CAPTRUCTHUOC2 = maLienDoan;
                }

                danhMucDonViNganh.NGAYTAO = DateTime.Now.Date;

                dbNew.themDonViNganh(themDonViNganh, danhMucDonViNganh);
                dangKyTaiKhoan(Convert.ToInt32(id), cap, Request.Form["Email"]);
            }
            catch 
            {
                themMoi = false;
            }
            return themMoi;
        }

        private void bindDonViTimKiem()
        {
            donViBind= new LoginModule.DonVi.DonViBasic(Convert.ToInt32(maDonViDangNhap.Value),NganhTimKiem.Value,LienDoanTimKiem.Value);

            DonViTrucThuoc.DataSource = donViBind.danhSachDonViTrucThuocTimKiem();
            DonViTrucThuoc.DataBind();
        }
        /// <summary>
        /// Them mot don vi truc thuoc
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnThemDonVi_Click(object sender, EventArgs e)
        {
            int capNhap = Convert.ToInt16(capDonViMacDinh.Value);
            bool themdonvinganh = true;
            if(capDonVi.Value.Equals("1")){

                if(capNhap == 4){
                    themMotLienDoan();
                }
                else if (capNhap == 5)
                {

                    themdonvinganh = themDonViNganh();
                }
                

            } else {

              themdonvinganh= themDonViNganh();
            }

            if (capNhap == 2 && capNhap == 4)
            {
                if (themdonvinganh == true)
                {
                    thucHienScript("alert('Tạo mới đơn vị ngành thành công')", "taotaikhoan");
                }
                else
                {
                    thucHienScript("alert('Tạo mới đơn vị ngành không thành công')", "taotaikhoan");
                }
            }

            bindDonVi(Convert.ToInt32(maDonViDangNhap.Value));
        }

        protected void huyTimKiem_Click(object sender, EventArgs e)
        {
            bindDonVi(Convert.ToInt32(maDonViDangNhap.Value));
        }

        protected void timKiem_Click(object sender, EventArgs e)
        {
            bindDonViTimKiem();
        }

        protected void DonViTrucThuoc_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "Sua")
            {
                Int32 index = Convert.ToInt32(e.CommandArgument.ToString());
                Label row = (Label)DonViTrucThuoc.Rows[index].FindControl("lblMaDonVi");
                Int32 maSoDonVi = Convert.ToInt32(row.Text);

                LoginModule.SOQUANLYDONVI so = db1.SOQUANLYDONVIs.SingleOrDefault(p => p.MASO == maSoDonVi);
                Response.Redirect("/DaoLienDoan/QuanTri/WebForm1.aspx?donvid=" + maSoDonVi+"&capdv="+so.CAPID);
            }
        }

        private void thucHienScript(string script, string key)
        {
            ClientScript.RegisterStartupScript(typeof(string), key, script, true);
        }

        private void dangKyTaiKhoan(Int32 id,int cap,string email)
        {
            LoginModule.DANGKYSUDUNG dk = new LoginModule.DANGKYSUDUNG();

            dk.MASO = id;
            dk.MATKHAU = LoginModule.Utilites.Encrypt(id.ToString(), true,id.ToString());
            dk.NGAYDANGKY = DateTime.Now.Date;
            dk.HOATDONG = true;
            dk.CAPDANGKY = cap;
            dk.TENTAIKHOAN = id.ToString();
            dk.EMAIL = email;
            dk.NGAYTAO = DateTime.Now.Date;

            LoginModule.DangKy taoTaiKhoan = new LoginModule.DangKy();
            int taoTaiKhoan1 = taoTaiKhoan.dangKyTaiKhoan(dk);

            if (taoTaiKhoan1 == 1)
            {
                thucHienScript("alert('Đăng ký tài khoản thành công với tên tài khoản" + id.ToString() + " và mật khẩu là tên tài khoản')", "dangkytaikhoan");

            }
            else
            {
                thucHienScript("alert('Đăng ký tài khoản không thành công')", "dangkytaikhoan");
            }
        }
    }
}